package com.xsd.vistor.shopDemo;

import java.util.List;

/**
 * @Description: 客户端
 * @Author: zhoufuzong
 * @Created: 2021-03-10 21:52:32
 * @Version: 1.1.0
 */

/**
 * 数据处理交由访问者执行
 * 被访问者只负责提供数据对象结构，
 * 新增商品时,商品的数据对象只需要继承 ItemElement ,
 * shoppingCartVitor 中增加对新商品的结算逻辑即可
 *
 */
public class Client {
    public static void main(String[] args) {
        ShoppingCartVistor vistor = new ShoppingCartImpl();
        ItemElement book = new Book(10,5);
        ItemElement furit = new Fruit(10,6);
        ItemStructure itemStructure = new ItemStructure();
        itemStructure.add(book);
        itemStructure.add(furit);

        List<ItemElement> list = itemStructure.getList();
        for (ItemElement itemElement : list) {
            System.out.println("总价格："+itemElement.accpet(vistor));

        }


    }
}
